editAreaLoader.load_syntax["oracle"] = {
	'COMMENT_SINGLE' : {1 : '--'}
	,'COMMENT_MULTI' : {'/*' : '*/'}
	,'QUOTEMARKS' : {1: "'", 2: '"', 3: '`'}
	,'KEYWORD_CASE_SENSITIVE' : false
	,'KEYWORDS' : {
		'statements' : [
			'select', 'SELECT', 'where', 'order', 'by',
			'insert', 'from', 'update', 'grant', 'left join', 'right join', 
            'union', 'group', 'having', 'alter', 'LIKE','IN','CASE','AS','on'
		]
		,'reserved' : ['abort','accept','access','add','all','alter','any','array',
		'arraylen','as','asc','assert','asign','at','audit','authid','authorization','avg',
		'begin','before','between','body','bulk','by','case','char','check',
		'close','cluster','clusters','coalesce','colauth','collect','column','comment','commit','compress',
		'connect','currval','after','aggregate','alias','all','and','as','authorization','by',
		'cascade','cache','cache','called','case','check','column','comment','commit','compress','connect',
		'constant','crash','create','current','currval','cursor','database','day','dba',
		'debugoff','debugon','declare','default','definition','delay','delete','desc','digits',
		'dispose','distinct','do','drop','else','elsif','end','entry','exception','exclusive',
		'execute','exist','elit','extend','extract','false','fetach','file','float','for','forall','form',
		'function','generic','goto','heap','hour','identified','if',
		'immediate','increment','indem','indexes','indicator','initial','interface',
		'intersect','interval','into','isolation','java','level','limited','lock','loop',
		'maxextents','minus','minute','mlslabel','mode','month','new',
		'nextval','noaudit','nocompress','nocopy','nowait','null','nullif',
		'ocirowid','offline','online','opaque','open','operator','option','order','organization',
		'ithers','out','package','partition','pctfree','positive','positiven','pragma','prior',
		'private','privileges','procedure','public','raise','range','raw','relase',
		'rename','resource','return','reverse','revoke','rollback','row','rowid','rowlabel',
		'rows','rowtype','run','savepoint','schema','second','separate','session','set','share',
		'space','sql','sqlcode','sqlerrm','start','statement','stddev','subtype','seccessful',
		'synonym','sysdate','table','tables','task','terminate','then','time',
		'trigger','true','type',
		'ui','uid','union','unique','use','validate','values','variance','view','views',
		'when','whenever','where','while','with','work','write','year','zone']
		
		,'types':['dec','decimal','float','int','integer','natural',
		'naturaln','number','numeric','positive','positiven','real','signtype','smallint',
		'char','character','long','nchar','nvarchar2','string','nvarchar','rowid','urowid','mlslabel','date',
		'interval day to second','interval day to month','timestamp','timezone','local','boolean','raw',
		'long raw','record','nested','index','varray','bfile','lob','clob','nlob','cursor','ref','sys.anytype',
		'sys.anydata','varchar','varchar2','rowid','rownumber','rowtype',
		'urowid','mlslabel','date','interval day to second','interval day to month','timestamp','timezone',
		'local','boolean','raw','long raw','record','nested','index','varray','bfile','lob','clob','nlob',
		'cursor','ref']
		
		,'packages':['DBMS_APPLICATION_INFO','DBMS_AQ','DBMS_AQDM','DBMS_AQELM','DBMS_BACKUP_RESTORE',
		'DBMS_DLL','DBMS_DEBUG','DBMS_DEFER','DBMS_DEFER_QUERY','DBMS_DEFER_SYS','DBMS_DESCRIBE',
		'DBMS_DISTRIBUTED_TRUST_ADMIN','DBMS_FGA','DBMS_FLASHBACK','DBMS_HS','DBMS_HS_PASSTHROUGH','DBMS_IOT',
		'DBMS_JAVAD','DBMS_LDAP','DBMS_LIBCACHE','DBMS_LOCK','DBMS_LOGMNR','DBMS_LOGMNR_CDC_PUBLISH',
		'DBMS_LOGMNR_CDC_SUBSCRIBE','DBMS_LOGMNR_D','DBMS_METADATE','DBMS_MVIEW','DBMS_OBFUSCATION_TOOLKIT',
		'DBMS_ODCI','DBMS__OFFLINE_OG','DBMS_OFFLINE_SNAPSHOT','DBMS_OLAP','DBMS_ORACLE_TRACE_AGENT',
		'DBMS_ORACLE_TRACE_USER','DBMS_OUTLN','DBMS_OUTLN_EDIT','DBMS_PCLXUTIL','DBMS_PROFILE','DBMS_RANDOM',
		'DBMS_RECTIFIER_DIFF','DBMS_REDIFINITION','DBMS_REFRESH','DBMS_REPAIR','DBMS_RECPAT',
		'DBMS_REPCAT_ADMIN','DBMS_REPCAT_INSTANTIATE','DBMS_REPCAT_RGT','DBMS_REPUTIL','DBMS_RESOURCE_MANAGER',
		'DBMS_RESOURCE_MANAGE_PRIV','DBMS_RESUMABLE','DBMS_RLS','DBMS_ROWID','DBMS_SESSION','DBMS_SHARED_POOL',
		'DBMS_SPACE','DBMS_SPACE_ADMIN','DBMS_STANDARD','STANDARD','DBMS_STATS','DBMS_TRACE',
		'DBMS_TRANSACTION','DBMS_TRANSFORM','TTS','TYPES','DBMS_UTILITY','DBMS_WM','DBMS_XMLQUERY',
		'DBMS_XMLSAVE','XMLGEN','DEBUG_EXTPROC','SDO_CS','SDO_GEOM','SDE_LRS','SDO_MIGRATE','SDO_TUNE',
		'UTL_COLL','UTL_ENCODE','UTL_FILE','UTL_PG','UTL_RAW','UTL_REF','UTL_URL','DBMS_SQL','DBMS_PIPE',
		'DBMS_OUTPUT','DBMS_ALERT','UTL_FILE','UTL_TCP','UTL_SMTP','UTL_HTTP','UTL_INADDR','DBMS_JOB',
		'DBMS_LOB','UTL_URL']
		
		,'functions' : ['chr','lower','ldap','ltrim','replace','rpad','rtrim','soundex','substr','substrb',
		'substrc','substr2','substr4','translate','trim','trailing','upper','ascii','instr','instrb','instrc',
		'instr2','instr4','length','lengthb','lengthc','length2','length4','convert','nchr',
		'nlssort','translate','unistr','abs','acos','asin','atan','atan2','bitand','ceil','cos','cosh',
		'exp','floor','ln','log','mod','power','round','sign','sin','sinh','sqrt','tan','tanh','trunc',
		'localtimestamp',
		'sessiontimezone','sysdate','systimestamp',
		'tz_offset','asciistr','chartorowid','compose','decompose',
		'to_char','to_date','to_nchar','to_numer','to_timestamp','avg','corr','count','grouping','max','min','stddev','sum',
		'var_pop','var_samo','variance','bfilename','coalesce','decode','dump',
		'exitsnode','extract','greatest','least','nullif','nvl','nvl2','treat','uid','user','userenv',
		'vsize']
	}
	,'OPERATORS' :[
     '&&','BETWEEN','BINARY','&','|','^','/','DIV','<=>','=','>=','>','<<','>>','NULL','<=','<','-','%','!=','<>','!','||','+','REGEXP','RLIKE','XOR','~','*'
	]
	,'DELIMITERS' :[
		'(', ')', '[', ']', '{', '}'
	]
	,'REGEXPS' : {
		// highlight all variables (@...)
		'variables' : {
			'search' : '()(\\%\\w+)()'
			,'class' : 'variables'
			,'modifiers' : 'g'
			,'execute' : 'before' // before or after
		},'numbers' : {
			'search' : '(\\b)([\\d]+)(\\b)'
			,'class' : 'numbers'
			,'modifiers' : 'g'
			,'execute' : 'before' // before or after
		},'opers' : {
			'search' : '(\\b)([OR|IS|AS|AND|NOT|IN|OF])(\\b)'
				,'class' : 'numbers'
				,'modifiers' : 'g'
				,'execute' : 'before' // before or after
			}
	}
	,'STYLES' : {
		'COMMENTS': 'color: #FF0000;'
		,'QUOTESMARKS': 'color: #879EFA;'
		,'KEYWORDS' : {
			'reserved' : 'color:#0000FF;'
			,'functions' : 'color: #0040FD;'
			,'statements' : 'color: #0000FF;'
			,'types' : 'color: #0000FF;font-style:normal;'
			,'packages':'color:#000000;font-style:normal;font-weight:bold;'
			}
		,'OPERATORS' : 'color: #FF0000;'
		,'DELIMITERS' : 'color: #2B60FF;'
		,'REGEXPS' : {
			'variables' : 'color: #00CD00;',
			'numbers' : 'color: #E0BD54;',
			'opers':'color: #FF0000;'
		}		
	}
	
	,'AUTO_COMPLETION' :  {
		"default": {	// the name of this definition group. It's posisble to have different rules inside the same definition file
			"REGEXP": { "before_word": "[^a-zA-Z0-9_]|^"	// \\s|\\.|
						,"possible_words_letters": "[a-zA-Z0-9_]+"
						,"letter_after_word_must_match": "[^a-zA-Z0-9_]|$"
						,"prefix_separator": "\\."
						,"numbers":"/\b([\d]+)\b/g"
					}
			,"CASE_SENSITIVE": false
			,"MAX_TEXT_LENGTH":20		// the maximum length of the text being analyzed before the cursor position
			,"KEYWORDS": {
				'': [	// the prefix of thoses items
						/**
						 * 0 : the keyword the user is typing
						 * 1 : (optionnal) the string inserted in code ("{@}" being the new position of the cursor, "§" beeing the equivalent to the value the typed string indicated if the previous )
						 * 		If empty the keyword will be displayed
						 * 2 : (optionnal) the text that appear in the suggestion box (if empty, the string to insert will be displayed)
						 */
						
			    		 ['from']
			    		,['select']
			    		,['where']
			    		  ,['order'],['by'], ['insert'],['delete'],['update'],['grant'],['left'],['right'],['join'] ,['like'],['union'],['group'],['having'],['in'],['on'],['as']			    		  
			    		  
			    	]
			}
		}
	}
};
